/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import beans.HoraExtra;
import beans.Incidencia;
import beans.ListPlacas;
import beans.Mensaje;
import beans.Placa;
import config.GestorVehiculos;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

/**
 *
 * @author Ahmed
 */
public class VehiculoDAO extends ConnectBD{

    public ListPlacas listarPlacas() throws SQLException {
        ListPlacas lista = new ListPlacas();
        
        PreparedStatement pst = conexion.conn.prepareStatement("SELECT idVEHICULO, placa FROM vehiculo");
        pst.execute();
        
        ResultSet rs = pst.getResultSet();
        
        while (rs.next()){
            Placa pl = new Placa();
            pl.vehiculo_id = rs.getInt(1);
            pl.placa = rs.getString(2);
            
            lista.lPlaca.add(pl);
        }
        
        return lista;
        
    }

    public void ingresarHoraExtra() throws SQLException {
        GestorVehiculos listaVehiculos = GestorVehiculos.getInstancia();
        ArrayList<HoraExtra> listaHoraExtra = listaVehiculos.getHorasExtras();
        String sql;
        
       
        sql = "INSERT INTO hora_extra(idUsuario,fecha,horasExtras,turno)" +
              " VALUES (?,?,?,?)";
        
        PreparedStatement pst = conexion.conn.prepareStatement(sql);
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        for (int i=0;i<listaHoraExtra.size();i++){
            
            HoraExtra aux = listaHoraExtra.get(i);
            
            pst.setInt(1, aux.getIdUsuario());
            pst.setString(2, sdf.format(aux.getFecha().getTime()));
            pst.setInt(3, aux.getHoraExtra());
            pst.setInt(4, aux.getTurno());
            
            pst.execute();
        }        
    }

    public void ingresarIncidencias() throws SQLException {
        GestorVehiculos listaVehiculos = GestorVehiculos.getInstancia();
        String sql;
        
        sql = "INSERT INTO incidencia(fechaOcurrencia,lugarOcurrencia,tiempoPerdido,turno,idVEHICULO) " +
              "VALUES (?,?,?,?,?)";
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        PreparedStatement pst = conexion.conn.prepareStatement(sql);
        for (int i= 0;i<listaVehiculos.getIncidencias().size();i++){
            Incidencia inc = listaVehiculos.getIncidencias().get(i);
            pst.setString(1, sdf.format(inc.getFecha().getTime()));
            pst.setInt(2, inc.getLocation().getX()*100+inc.getLocation().getY()+1);
            pst.setInt(3, inc.getTiempoPerdido());
            pst.setInt(4, inc.getTurno());
            pst.setInt(5, inc.getVehiculo().getId());
            
            pst.execute();
            
            System.out.println(sql);
        }
        
    }

    public ListPlacas listarPlacas(String tipo) throws SQLException {
        ListPlacas lista = new ListPlacas();
        Mensaje mensaje = new Mensaje();
        mensaje.me = "";
//        PreparedStatement pst = conexion.conn.prepareStatement("SELECT idVEHICULO, placa FROM vehiculo WHERE tipo = ?");
//        pst.setString(1,tipo);
//        pst.execute();
        String sql = "SELECT idVEHICULO, placa FROM vehiculo WHERE tipo = '" + tipo+"';";
        Statement st = conexion.conn.createStatement();
        System.out.println(sql);
        st.executeQuery(sql);
        ResultSet rs = st.getResultSet();
        
        while (rs.next()){
            Placa pl = new Placa();
            pl.vehiculo_id = rs.getInt(1);
            pl.placa = rs.getString(2);
            
            lista.lPlaca.add(pl);
        }
        
        return lista;
    }
    
}
